/**
 *  @file timer.h
 *
 *  @date 19-nov-2009
 *  @author Ives van der Flaas
 */

#ifndef TIMER_H_
#define TIMER_H_

namespace si
{

/**
 * The millisecond accurate timer we will be using. Will be
 * implemented as an SDLTimer.
 */
class Timer
{
public:
	/**
	 * Does not change internal state, returns number of seconds (ms
	 * accurate) passed since reset or construction of timer object.
	 * @return seconds passed
	 */
	virtual double poll() const =0;

	/**
	 * Resets the timer to relative 0 and returns previous state in
	 * seconds.
	 * @return time passed in seconds
	 */
	virtual double reset()=0;

};

}

#endif /* TIMER_H_ */
